Home | Stuff | Old computers/electronics | Gaming Consoles | Music | Links
PS/2 Keyboard for Apple II | AL-ADT, Apple II Disk-Backup | IRR, serial IR receiver
This page describes how to backup old Apple II DOS 3.3 disks to PC if your Apple has less than 64k RAM (hence the name) without any additional hardware.
If your Apple *does* have >= 64k, use ADTPro, it's much nicer for that purpose.
Now, I'm not sure how general-purpose the tools and instructions given here are, I've made and used everything for the Apple II europlus I own and it worked fine. All the disks I backed up were formatted with DOS 3.3 and thus had 16 sectors and 35 tracks (as opposed to pre-3.3 disks which are formatted with 13 sectors). ProDOS or DOS <3.3 disks may work, I haven't tested that though.
Either way, give it a try and let me know if it worked for you or not.
Except for the diskdump-code, the tool "a2audioup" can be used to place any data into the Apple's RAM from the PC, without any additional hardware required (except an audio-cable).
This is what we'll do:
The soundcards line-out goes to "CASSETTE IN" on the Apple and line-in/microphone goes to "CASSETTE OUT". If you have only one cable it's fine — you don't need to have both things connected at the same time, since we'll be only sending data in one direction at once — it may be a little inconvenient, though.
See here for a very detailed description on how to connect everything.
Turn your Apple on and boot from a disk formatted with DOS. Enter the Monitor by typing
CALL -151
Enter this to make the Apple read our program from the cassette port (that's zeros, not O's):
C00.CFFR
After this, the Apple will wait for data — on the PC-side, send the file "disk2cassette.bin" with the tool "a2audioup":
a2audioup -i
disk2cassette.bin
After the data has been sent, the Apple should beep and return to prompt. If there was an error, try some of the hints provided at the ADTPro-site.
Now the program is in place, waiting to get started. As soon as it runs, it will start reading the inserted disk into memory. After it has collected a chunk of memory, it will send it out via the cassette-port. That's exactly the data we want to record with a Wave-Editor! Launch your trusted app (Audacity, Wavelab, ...) and start recording at 44100Hz, 8 bit and mono. Then enter this to start the program:
C00G
The drive should start loading at the same moment and you should see output like this:
00 00: 00 00 01: 00 00 02: 00 00 03: 00 00 04: 00 . . . 07
04: 00 -
The first number is the current track, the second the current sector and the number after the colon is the result. If the sector has been read successfully, it's 00, if there was an error, it's not.
After a while it will stop and output a dash — this is the moment where the data read into the memory so far is being sent out the cassette-port — you should be getting something in the Wave-Editor! This will take a few minutes each, don't get impatient. After that, it will read some more from the disk and send it again — until the whole disk has been read.
A disk takes around 12 minutes to dump. You know that the dump-app is done when it beeps a few times and the prompt is back.
Stop the recording, you should see something like that:
Save the file.
We're almost done, the last step is to make "a2cassdecode" decode file. It doesn't have to be a WAV, it can be anything — as long as it's 8bit unsigned audio.
Decode it by running
a2cassdecode recorded.wav image.dsk
and you should see something like:
Apple ][ Cassette Audio Decoder
(c) 2008 seb at riot dot org $Rev: 20 $ DC=0.00 34.42 secs : sync found, period
is 29, samplefreq is ~44615.38 44.59 secs : data starts 176.26 secs : data ends:
29952 bytes, checksum OK 205.11 secs : sync found, period is 28, samplefreq is
~43076.92 215.64 secs : data starts 337.04 secs : data ends: 29952 bytes,
checksum OK 359.80 secs : sync found, period is 28, samplefreq is ~43076.92
370.34 secs : data starts 492.20 secs : data ends: 29952 bytes, checksum OK
515.04 secs : sync found, period is 28, samplefreq is ~43076.92 525.57 secs :
data starts 646.97 secs : data ends: 29952 bytes, checksum OK 665.09 secs : sync
found, period is 28, samplefreq is ~43076.92 675.62 secs : data starts 771.08
secs : data ends: 23552 bytes, checksum OK Total: 143360 bytes
If you get decoding errors, your recording may be bad. Check the cabling and make sure you're recording at a normal volume. It doesn't have to (actually, shouldn't) be at 0db non-stop, but the SNR should be reasonable.
That's all! The generated file is usable in all the emulators.
It should be possible to build the tools on Linux or other POSIX-platforms, Makefiles are included.